package com.dxy.dxyadmin.service;

import com.dxy.dxyadmin.DO.Admin;
import com.dxy.dxyadmin.DO.Permission;
import com.dxy.dxyadmin.DTO.PermissionTree;
import com.dxy.dxyadmin.VO.AdminVO;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * junfeng 2018/11/6 管理员service
 */
public interface AdminService {

    /**
     * 添加管理员
     *
     * @param adminVO
     * @return
     */
    Admin insertAdmin(AdminVO adminVO);

    /**
     * 更新管理员信息
     *
     * @param adminVO
     * @return
     */
    Admin updateAdmin(AdminVO adminVO);

    /**
     * 更新管理员状态
     *
     * @param id
     * @param status
     * @return
     */
    int updateStatusAdmin(Integer id, Integer status);

    /**
     * 管理员列表
     *
     * @param page
     * @param size
     * @param params
     * @return
     */
    Page<Admin> listAdmin(Integer page, Integer size, Map<String, Object> params);

    /**
     * 通过名称查询前端页面菜单
     *
     * @param name
     * @return
     */
    List<PermissionTree> querySide(String name);

    /**
     * 查找管理员
     *
     * @param name
     * @return
     */
    Admin findByName(String name);

    /**
     * 通过管理员名称查询权限名称
     *
     * @param name
     * @return
     */
    Set<String> queryRoles(String name);

    /**
     * 通过管理员名称查询权限名称
     *
     * @param name
     * @return
     */
    Set<String> queryPermissions(String name);


    List<Permission> queryBtn(String name, String title);


}
